#requires AutoHotkey v2
-; UltimateKEYS (for AutoHotkey v2).ahk - 2023-07-15
+; UltimateKEYS (for AutoHotkey v2).ahk - 2023-12-12
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
cmpAcuteAccent["Y"] := "{u+00dd}" ; (Ý) Y with acute
cmpAcuteAccent["z"] := "{u+017a}" ; (ź) z with acute
cmpAcuteAccent["Z"] := "{u+0179}" ; (Ź) Z with acute
-cmpAcuteAccent[" "] := "{u+00b4}" ; (´) acute accent
; Compose : Grave Accent (`)
cmpGraveAccent["W"] := "{u+1e80}" ; (Ẁ) W with grave
cmpGraveAccent["y"] := "{u+1ef3}" ; (ỳ) y with grave
cmpGraveAccent["Y"] := "{u+1ef2}" ; (Ỳ) Y with grave
-cmpGraveAccent[" "] := "{u+02cb}" ; (ˋ) grave accent (modifier)
; Compose : Diaeresis (")
cmpDiaeresis["X"] := "{u+1e8c}" ; (Ẍ) X with diaeresis
cmpDiaeresis["y"] := "{u+00ff}" ; (ÿ) y with diaeresis
cmpDiaeresis["Y"] := "{u+0178}" ; (Ÿ) Y with diaeresis
-cmpDiaeresis[" "] := "{u+00a8}" ; (¨) diaeresis
; Compose : Circumflex Accent (c)
cmpCircumflex["Y"] := "{u+0176}" ; (Ŷ) Y with circumflex
cmpCircumflex["z"] := "{u+1e91}" ; (ẑ) z with circumflex
cmpCircumflex["Z"] := "{u+1e90}" ; (Ẑ) Z with circumflex
-cmpCircumflex[" "] := "{u+02c6}" ; (ˆ) circumflex accent (modifier)
; Compose : Tilde (~)
cmpTilde["V"] := "{u+1e7c}" ; (Ṽ) V with tilde
cmpTilde["y"] := "{u+1ef9}" ; (ỹ) y with tilde
cmpTilde["Y"] := "{u+1ef8}" ; (Ỹ) Y with tilde
-cmpTilde[" "] := "{u+02dc}" ; (˜) small tilde
; Compose : Cedilla and Ogonek (,)
cmpCedillaOgonek["T"] := "{u+0162}" ; (Ţ) T with cedilla
cmpCedillaOgonek["u"] := "{u+0173}" ; (ų) u with ogonek
cmpCedillaOgonek["U"] := "{u+0172}" ; (Ų) U with ogonek
-cmpCedillaOgonek["."] := "{u+02db}" ; (˛) ogonek
-cmpCedillaOgonek[" "] := "{u+00b8}" ; (¸) cedilla
; Compose : Caron (v)
cmpCaron["Z"] := "{u+017d}" ; (Ž) Z with caron
cmpCaron["3"] := "{u+01ef}" ; (ǯ) small letter ezh with caron
cmpCaron["#"] := "{u+01ee}" ; (Ǯ) capital letter ezh with caron
-cmpCaron[" "] := "{u+02c7}" ; (ˇ) caron
; Compose : Dot Above (.)
cmpMacronStroke["Y"] := "{u+0232}" ; (Ȳ) Y with macron
cmpMacronStroke["z"] := "{u+01b6}" ; (ƶ) z with stroke
cmpMacronStroke["Z"] := "{u+01b5}" ; (Ƶ) Z with stroke
-cmpMacronStroke[" "] := "{u+00af}" ; (¯) macron
; Compose : Macron and Stroke (additional) (_)
cmpBreveSpecial["Y"] := "{u+021c}" ; (Ȝ) capital letter yogh
cmpBreveSpecial["3"] := "{u+0292}" ; (ʒ) small letter ezh
cmpBreveSpecial["#"] := "{u+01b7}" ; (Ʒ) capital letter ezh
-cmpBreveSpecial[" "] := "{u+02d8}" ; (˘) breve
; Compose : Double Acute Accent (=)
cmpDoubleAcute["O"] := "{u+0150}" ; (Ő) O with double acute
cmpDoubleAcute["u"] := "{u+0171}" ; (ű) u with double acute
cmpDoubleAcute["U"] := "{u+0170}" ; (Ű) U with double acute
-cmpDoubleAcute[" "] := "{u+02dd}" ; (˝) double acute accent
; Compose : Hook and Horn (h)
cmpSmallF["t"] := "{u+0288}" ; (ʈ) t with retroflex hook
cmpSmallF["T"] := "{u+01ae}" ; (Ʈ) T with retroflex hook
cmpSmallF["v"] := "{u+2c71}" ; (ⱱ) v with right hook
-cmpSmallF["w"] := "{u+2c73}" ; (ⱳ) w with right hook
-cmpSmallF["W"] := "{u+2c72}" ; (Ⱳ) W with right hook
cmpSmallF["z"] := "{u+0290}" ; (ʐ) z with retroflex hook
cmpCurrency["x"] := "{u+00a4}" ; (¤) currency sign
cmpCurrency["y"] := "{u+00a5}" ; (¥) yen sign
cmpCurrency["Y"] := "{u+00a5}" ; (¥) yen sign
-cmpCurrency[" "] := "{u+00a4}" ; (¤) currency sign
; Compose : Greek Alphabet (g)
cmpSpace["9"] := "{u+2007}" ; figure space
cmpSpace["0"] := "{u+200b}" ; zero-width space (ZWSP)
cmpSpace["m"] := "{u+205f}" ; medium mathematical space (MMSP)
+cmpSpace["n"] := "{u+202f}" ; narrow no-break space (NNBSP)
cmpSpace[" "] := "{u+00a0}" ; non-breaking space (NBSP)
-cmpSpace["."] := "{u+202f}" ; narrow no-break space (NNBSP)
cmpMacronStroke["2"] := "{u+2013}" ; (–) en dash
cmpMacronStroke["3"] := "{u+2014}" ; (—) em dash
cmpMacronStroke["4"] := "{u+2015}" ; (―) horizontal bar
cmpQuad["3"] := "{u+2001}" ; em quad
-; Compose : Arrows and Pointers
+; Compose : Arrows and Pointing Triangles
global cmpArrow := Map()
cmpArrow["w"] := "{u+25b2}" ; (▲) black up-pointing triangle
global cmpDigitEight := Map()
global cmpCapitalP := Map()
-global cmpSemicolon := Map()
global cmpAsterisk := Map()
global cmpExclam := Map()
global cmpQuestion := Map()
cmpSymbols["o"] := "{u+00a7}" ; (§) section sign
cmpCapitalS["o"] := "{u+00a7}" ; (§) section sign
cmpSmallT["m"] := "{u+2122}" ; (™) trademark symbol
-cmpSemicolon["b"] := "{u+2022}" ; (•) bullet
-cmpSemicolon[";"] := "{u+2022}" ; (•) bullet
-cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon[">"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon["-"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon["w"] := "{u+25e6}" ; (◦) white bullet
-cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet
cmpAcuteAccent["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent["3"] := "{u+2034}" ; (‴) triple prime
cmpAsterisk["o"] := "{u+00b0}" ; (°) degree sign
cmpRingAbove["*"] := "{u+00b0}" ; (°) degree sign
cmpDotAbove["."] := "{u+00b7}" ; (·) middle dot
-cmpDotAbove[" "] := "{u+00b7}" ; (·) middle dot
cmpDotAbove["3"] := "{u+2026}" ; (…) horizontal ellipsis
cmpArrow["-"] := "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)
cmpRingAbove["-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
cmpTilde["~"] := "{u+2248}" ; (≈) almost equal to
+; Compose : Bullets and Small Geometric Shapes (;)
+
+global cmpSemicolon := Map()
+cmpSemicolon["b"] := "{u+2022}" ; (•) bullet
+cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon["q"] := "{u+25aa}" ; (▪) black small square
+cmpSemicolon["r"] := "{u+25ab}" ; (▫) white small square
+cmpSemicolon["w"] := "{u+25b4}" ; (▴) black up-pointing small triangle
+cmpSemicolon["a"] := "{u+25c2}" ; (◂) black left-pointing small triangle
+cmpSemicolon["s"] := "{u+25be}" ; (▾) black down-pointing small triangle
+cmpSemicolon["d"] := "{u+25b8}" ; (▸) black right-pointing small triangle
+cmpSemicolon["i"] := "{u+25b5}" ; (▵) white up-pointing small triangle
+cmpSemicolon["j"] := "{u+25c3}" ; (◃) white left-pointing small triangle
+cmpSemicolon["k"] := "{u+25bf}" ; (▿) white down-pointing small triangle
+cmpSemicolon["l"] := "{u+25b9}" ; (▹) white right-pointing small triangle
+cmpSemicolon[";"] := "{u+2022}" ; (•) bullet
+
+
; Compose : Vulgar Fractions
global cmpDigitOne := Map()
cmpDiaeresis[","] := "{u+201e}" ; („) double low-9 quotation mark
cmpCedillaOgonek["'"] := "{u+201a}" ; (‚) single low-9 quotation mark
cmpAcuteAccent[","] := "{u+201a}" ; (‚) single low-9 quotation mark
+cmpCedillaOgonek[","] := "{u+201a}" ; (‚) single low-9 quotation mark
cmpDiaeresis["["] := "{u+201c}" ; (“) left double quotation mark
cmpBracketLeft[chr(34)] := "{u+201c}" ; (“) left double quotation mark
cmpDiaeresis["]"] := "{u+201d}" ; (”) right double quotation mark
cmpDigitTwo["t"] := "{u+26a0}" ; (⚠) warning sign
cmpDigitTwo["u"] := "{u+26a1}" ; (⚡) high voltage sign
cmpDigitTwo["v"] := "{u+26d4}" ; (⛔) no entry
+cmpDigitTwo["w"] := "{u+231a}" ; (⌚) watch
+cmpDigitTwo["x"] := "{u+231b}" ; (⌛) hourglass
cmpDigitThree["a"] := "{u+2701}" ; (✁) upper blade scissors
cmpDigitThree["b"] := "{u+2702}" ; (✂) black scissors
; Configuration : Compose Key Selector
>!`::
->!sc056:: {
+>!~::
+>!sc056::
+>!+sc056:: {
ihA := InputHook("L1", gEndKeys)
ihA.Start()
ihA.Wait()
if cmpCapitalP.Has(ihB.Input)
Send cmpCapitalP[ihB.Input]
}
- else if (ihA.Input == ";") {
- if cmpSemicolon.Has(ihB.Input)
- Send cmpSemicolon[ihB.Input]
- }
else if (ihA.Input == "*") {
if cmpAsterisk.Has(ihB.Input)
Send cmpAsterisk[ihB.Input]
if cmpGreaterThan.Has(ihB.Input)
Send cmpGreaterThan[ihB.Input]
}
+ else if (ihA.Input == ";") {
+ if cmpSemicolon.Has(ihB.Input)
+ Send cmpSemicolon[ihB.Input]
+ }
else if (ihA.Input == "1") {
if cmpDigitOne.Has(ihB.Input)
Send cmpDigitOne[ihB.Input]